//
//  RootViewController.m
//  表头拉伸更改
//
//  Created by syq on 15/12/10.
//  Copyright © 2015年 syq. All rights reserved.
//
#import "RootViewController.h"
#define ScreenWidth [[UIScreen mainScreen] bounds].size.width
#define Screenheight [[UIScreen mainScreen] bounds].size.height
#define kImageOriginHight 220

@interface RootViewController ()<UITableViewDataSource,UITableViewDelegate>
{
    UIImageView *headerBg;

}
@property (nonatomic, strong)UITableView *tableView;
@end
@implementation RootViewController

-(UITableView *)tableView{
    if (_tableView == nil) {
        self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];
        _tableView.delegate = self;
        _tableView.dataSource = self;
    }
    return _tableView;
}
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    [self.view addSubview:self.tableView];
    headerBg = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"bg"]];
    headerBg.frame = CGRectMake(0, 0, ScreenWidth, kImageOriginHight);
    //表头放一个占位的clearView，不能把headerBg直接放到tableHeaderView
    UIView *clearView = [[UIView alloc] initWithFrame:headerBg.frame];
    self.tableView.tableHeaderView = clearView;

    [self.tableView addSubview:headerBg];
}



-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    return 3;
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
    return [NSString stringWithFormat:@"第几个：%ld",section];
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 15;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellIdentifier = @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }
    cell.textLabel.text = @"123456";
    return cell;
}

//当scrollveiw滚动的时候
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    /**
     *  根据偏移量更改导航条的透明度
     */
    //偏移量
    CGFloat yOffset  = scrollView.contentOffset.y;
    
    [self.navigationController setNavigationBarHidden:NO animated:NO];
    if (scrollView.contentOffset.y/90.0 > 1.0) {
        CGFloat alpha = 1;
          [self.navigationController.navigationBar setBackgroundImage:[self getImageWithAlpha:alpha] forBarMetrics:UIBarMetricsDefault];
    } else {
        CGFloat alpha =  scrollView.contentOffset.y/90.0;
          [self.navigationController.navigationBar setBackgroundImage:[self getImageWithAlpha:alpha] forBarMetrics:UIBarMetricsDefault];
    }
    /**
     *  对表头效果拉伸的出来,yOffset 初始状态 ： -220.000000
     */
    NSLog(@"%f",yOffset);
    //指的是向下拉伸
    if (yOffset < 0) {
        //获取图片的frame
        CGRect f = headerBg.frame;
        //下拉的偏移量赋给//让图片的起始位置的y方向等于它的偏移量
        f.origin.y = yOffset;
        //加上下拉的偏移量得到一个新的高度
        f.size.height = kImageOriginHight -yOffset;
        //x位置 f.size.height/kImageOriginHight * ScreenWidth 通过高度比例得到宽度的值，然后减去原来宽度，边长的宽度 除以2得到x轴位置
        //通过比例得到
        f.origin.x = -(f.size.height*ScreenWidth/kImageOriginHight -  ScreenWidth)/2;
        ////f.size.height/kImageOriginHight * ScreenWidth 通过高度比例得到宽度的值，
        f.size.width = f.size.height*ScreenWidth/kImageOriginHight;
        headerBg.frame = f;
    }
}

#pragma handle image -mark
/**
 *  根据透明度去绘制一个图片，也可以省略此处用一个透明的图片，没这个效果好
 */
-(UIImage *)getImageWithAlpha:(CGFloat)alpha{
    
    UIColor *color=[UIColor colorWithRed:1 green:0 blue:0 alpha:alpha];
    CGSize colorSize=CGSizeMake(1, 1);
    
    UIGraphicsBeginImageContext(colorSize);
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    CGContextSetFillColorWithColor(context, color.CGColor);
    
    CGContextFillRect(context, CGRectMake(0, 0, 1, 1));
    
    UIImage *img=UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();

    return img;
}

@end
